package com.ourteam.product.requirement.service;

/**
 * Template Name : 服务对象接口
 * Template Version : 1
 * Template Last Modfiy Date : Mon Nov 06 10:52:53 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:46
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public interface IProductIssueService {
    /**
    *
    
    * @param com.ourteam.product.requirement.domain.ProductIssueBean
    
         * @throws Exception
         */
    void addNewProductIssue(
        final com.ourteam.product.requirement.domain.ProductIssueBean aProductIssue)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.domain.ProductIssueBean
    
         * @throws Exception
         */
    void modifyProductIssue(
        final com.ourteam.product.requirement.domain.ProductIssueBean aProductIssue)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    void deleteProductIssues(final long[] aProductIssueIds)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    com.ourteam.product.requirement.domain.ProductIssueBean getProductIssueById(
        final long aProductIssueId) throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueDAOQueryBean
    
         * @throws Exception
         */
    com.ourteam.product.requirement.domain.ProductIssueBean[] queryProductIssues(
        final com.ourteam.product.requirement.dao.ProductIssueDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueDAOQueryBean
    
         * @throws Exception
         */
    int queryProductIssueCount(
        final com.ourteam.product.requirement.dao.ProductIssueDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.domain.ProductIssueAttachBean
    
         * @throws Exception
         */
    void addNewProductIssueAttach(
        final com.ourteam.product.requirement.domain.ProductIssueAttachBean aProductIssueAttach)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.domain.ProductIssueAttachBean
    
         * @throws Exception
         */
    void modifyProductIssueAttach(
        final com.ourteam.product.requirement.domain.ProductIssueAttachBean aProductIssueAttach)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    void deleteProductIssueAttachs(final long[] aProductIssueAttachIds)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    com.ourteam.product.requirement.domain.ProductIssueAttachBean getProductIssueAttachById(
        final long aProductIssueAttachId) throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueAttachDAOQueryBean
    
         * @throws Exception
         */
    com.ourteam.product.requirement.domain.ProductIssueAttachBean[] queryProductIssueAttachs(
        final com.ourteam.product.requirement.dao.ProductIssueAttachDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueAttachDAOQueryBean
    
         * @throws Exception
         */
    int queryProductIssueAttachCount(
        final com.ourteam.product.requirement.dao.ProductIssueAttachDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.domain.ProductIssueNoteBean
    
         * @throws Exception
         */
    void addNewProductIssueNote(
        final com.ourteam.product.requirement.domain.ProductIssueNoteBean aProductIssueNote)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.domain.ProductIssueNoteBean
    
         * @throws Exception
         */
    void modifyProductIssueNote(
        final com.ourteam.product.requirement.domain.ProductIssueNoteBean aProductIssueNote)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    void deleteProductIssueNotes(final long[] aProductIssueNoteIds)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    com.ourteam.product.requirement.domain.ProductIssueNoteBean getProductIssueNoteById(
        final long aProductIssueNoteId) throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueNoteDAOQueryBean
    
         * @throws Exception
         */
    com.ourteam.product.requirement.domain.ProductIssueNoteBean[] queryProductIssueNotes(
        final com.ourteam.product.requirement.dao.ProductIssueNoteDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueNoteDAOQueryBean
    
         * @throws Exception
         */
    int queryProductIssueNoteCount(
        final com.ourteam.product.requirement.dao.ProductIssueNoteDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueDAOQueryBean
    
         * @throws Exception
         */
    java.util.Map<String, Object> queryProductIssuesStatistics(
        final com.ourteam.product.requirement.dao.ProductIssueDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.domain.ProductIssueChangeLogBean
    
         * @throws Exception
         */
    void addNewProductIssueChangeLog(
        final com.ourteam.product.requirement.domain.ProductIssueChangeLogBean aProductIssueChangeLog)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.domain.ProductIssueChangeLogBean
    
         * @throws Exception
         */
    void modifyProductIssueChangeLog(
        final com.ourteam.product.requirement.domain.ProductIssueChangeLogBean aProductIssueChangeLog)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    void deleteProductIssueChangeLogs(final long[] aProductIssueChangeLogIds)
        throws Exception;

    /**
    *
    
    * @param long
    
         * @throws Exception
         */
    com.ourteam.product.requirement.domain.ProductIssueChangeLogBean getProductIssueChangeLogById(
        final long aProductIssueChangeLogId) throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueChangeLogDAOQueryBean
    
         * @throws Exception
         */
    com.ourteam.product.requirement.domain.ProductIssueChangeLogBean[] queryProductIssueChangeLogs(
        final com.ourteam.product.requirement.dao.ProductIssueChangeLogDAOQueryBean queryBean)
        throws Exception;

    /**
    *
    
    * @param com.ourteam.product.requirement.dao.ProductIssueChangeLogDAOQueryBean
    
         * @throws Exception
         */
    int queryProductIssueChangeLogCount(
        final com.ourteam.product.requirement.dao.ProductIssueChangeLogDAOQueryBean queryBean)
        throws Exception;
}
